#!/bin/sh
echo "hello"

echo 
echo "只读变量（readonly）测试"
#定义只读变量
company_name="galxywind"
readonly company_name
echo company name:${company_name}

echo 
echo "删除变量（unset）测试"
delval="warnning"
unset delval #删除变量，注意，只读变量不能删除
echo delval${delval}

echo 
myname="sunshiwei"
echo ${myname}
echo $myname

echo 
echo "输出目录下文件"
for file in $(ls ./);
do
	echo ${file}
done
echo ${myname}+hello
echo $(ls ./ | grep .c)

echo 
echo "单引号测试 ：单引号里的任何字符都会原样输出，单引号字符串中的变量是无效的；"
echo "单引号字串中不能出现单引号（对单引号使用转义符后也不行。"
str='this is a string'
echo ${str}

echo 
echo "双引号测试 ：双引号里可以有变量"
echo " 双引号里可以出现转义字符"
yourname="zhangsan"
greeting="hello,"$yourname""
greeting1="hello,${yourname}!"
echo $greeting $greeting1

echo 
echo "获取字符串长度"
echo strlen is ${#yourname}

echo 
echo "提取字符串"
string="runoob is a great site"
echo ${string:1:8}
echo "查找字符串,查找字符 "i 或 s" 的位置："
# "注意： 下面脚本中 "`" 是反引号，而不是单引号 "'"，不要看错了哦。"
pos=`expr index "$string" is`
echo $pos


#Shell 数组
#bash支持一维数组（不支持多维数组），并且没有限定数组的大小。
#类似与C语言，数组元素的下标由0开始编号。获取数组中的元素要利用下标，下标可以是整数或算术表达式，其值应大于或等于0。 
array_name=(value0 value1 value2 value3)
array_name[0]=value0
array_name[1]=value1
array_name[3]=valuen
#使用@符号可以获取数组中的所有元素
echo ${array_name[@]}

# 取得数组元素的个数
length=${#array_name[@]}
echo ${length}
# 或者
length=${#array_name[*]}
echo ${length}
# 取得数组单个元素的长度
length0=${#array_name[0]}
echo ${length0}

echo "Shell 传递参数实例！";
echo "执行的文件名：$0";
echo "参数个数为：$#";
echo "传递的参数作为一个字符串显示：$*";
echo "传递的参数作为一个字符串显示：$@";
echo "第一个参数为：$1";
echo "第二个参数为：$2";
echo "第三个参数为：$3";

Shell 基本运算符

Shell 和其他编程语言一样，支持多种运算符，包括：

    算数运算符
    关系运算符
    布尔运算符
    字符串运算符
    文件测试运算符

原生bash不支持简单的数学运算，但是可以通过其他命令来实现，例如 awk 和 expr，expr 最常用。

expr 是一款表达式计算工具，使用它能完成表达式的求值操作。

例如，两个数相加(注意使用的是反引号 ` 而不是单引号 ')：
















